"""
name: 自定义信号及使用
version: 1.0
"""
from PyQt5.QtCore import QObject, pyqtSignal


class foo(QObject):
    # 不含参数的信号
    signal1 = pyqtSignal()
    # 传递一个整数类型参数的信号
    signal2 = pyqtSignal(int)
    # 传递两个参数的信号，第一个为整形，第二个为字符串
    # name参数可以为信号指定别名
    signal3 = pyqtSignal(str, int, name='mysignal')
    # 传递一个参数的信号，可以是整形，也可以是字符串
    signal4 = pyqtSignal([int], [str])

    def signal_emit(self):
        # 发送各种信号
        self.signal1.emit()
        self.signal2.emit(2)
        self.signal3.emit('signal3', 3)
        self.signal4.emit(4)
        self.signal4.emit('string2')
        self.signal4[str].emit('string3')


def print1():
    print('signal1 emit')


s = foo()
s.signal1.connect(print1)
s.signal2.connect(print)
s.signal3.connect(print)
s.signal4.connect(print)
s.signal4[str].connect(print)

s.signal_emit()
